widget-factory: hook up callbacks to the tab close buttons
authorMatthias Clasen <mclasen@redhat.com>
Fri, 24 Jul 2015 15:58:38 +0000 (11:58 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 24 Jul 2015 16:22:19 +0000 (12:22 -0400)
Just to show that buttons in notebook tabs work.

demos/widget-factory/widget-factory.c
demos/widget-factory/widget-factory.ui

index 76bc11f714e618aeebaa0452e824ad6853105d5a..f17894d47d208a84f3190f565ef2be8ba27d2aaf 100644 (file)
@@ -1226,6 +1226,20 @@ open_popover_text_changed (GtkEntry *entry, GParamSpec *pspec, GtkWidget *button
   gtk_widget_set_sensitive (button, strlen (text) > 0);
 }
 
+static gboolean
+show_page_again (gpointer data)
+{
+  gtk_widget_show (GTK_WIDGET (data));
+  return G_SOURCE_REMOVE;
+}
+
+static void
+tab_close_cb (GtkWidget *page)
+{
+  gtk_widget_hide (page);
+  g_timeout_add (2500, show_page_again, page);
+}
+
 static void
 activate (GApplication *app)
 {
@@ -1274,6 +1288,7 @@ activate (GApplication *app)
   gtk_builder_add_callback_symbol (builder, "on_range_from_changed", (GCallback)on_range_from_changed);
   gtk_builder_add_callback_symbol (builder, "on_range_to_changed", (GCallback)on_range_to_changed);
   gtk_builder_add_callback_symbol (builder, "osd_frame_button_press", (GCallback)osd_frame_button_press);
+  gtk_builder_add_callback_symbol (builder, "tab_close_cb", (GCallback)tab_close_cb);
 
   gtk_builder_connect_signals (builder, NULL);
 
index a0b78d3c22267e31d5c753e901203ece889d5ae5..fc6459dda70c20b3a9af65cb17faa2d4e6ea20c7 100644 (file)
@@ -3476,7 +3476,7 @@ microphone-sensitivity-medium-symbolic</property>
                                     <property name="visible">True</property>
                                     <property name="show-border">False</property>
                                     <child>
-                                      <object class="GtkBox">
+                                      <object class="GtkBox" id="closable_page_1">
                                         <property name="visible">True</property>
                                         <property name="height-request">120</property>
                                       </object>
@@ -3498,6 +3498,7 @@ microphone-sensitivity-medium-symbolic</property>
                                             <property name="visible">True</property>
                                             <property name="relief">none</property>
                                             <property name="focus-on-click">False</property>
+                                            <signal name="clicked" handler="tab_close_cb" object="closable_page_1"/>
                                             <style>
                                               <class name="small-button"/>
                                             </style>
@@ -3516,7 +3517,7 @@ microphone-sensitivity-medium-symbolic</property>
                                       </object>
                                     </child>
                                     <child>
-                                      <object class="GtkBox">
+                                      <object class="GtkBox" id="closable_page_2">
                                         <property name="visible">True</property>
                                         <property name="vexpand">True</property>
                                       </object>
@@ -3538,6 +3539,7 @@ microphone-sensitivity-medium-symbolic</property>
                                             <property name="visible">True</property>
                                             <property name="relief">none</property>
                                             <property name="focus-on-click">False</property>
+                                            <signal name="clicked" handler="tab_close_cb" object="closable_page_2"/>
                                             <style>
                                               <class name="small-button"/>
                                             </style>